//Spring MVC 配置类，用于配置视图控制器、静态资源处理、跨域访问等功能
package com.mindskip.xzs.configuration.spring.mvc;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*;

@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport {



    // 配置视图控制器，用于重定向到指定的HTML页面
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        // 将根路径重定向到/student/index.html
        registry.addRedirectViewController("/", "/student/index.html");
        // 将/student路径重定向到/student/index.html
        registry.addRedirectViewController("/student", "/student/index.html");
        // 将/admin路径重定向到/admin/index.html
        registry.addRedirectViewController("/admin", "/admin/index.html");
    }

    // 配置资源处理器，用于提供静态资源的访问
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 所有路径的请求都会被映射到classpath:/static/目录下的资源
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .setCachePeriod(31556926); // 设置缓存时间为一年，提高静态资源的加载性能。
    }

    // 配置拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {


    }

    // 配置跨域访问
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 允许所有路径的跨域请求
        registry.addMapping("/**")
                .allowCredentials(true) // 允许发送Cookie
                .allowedMethods("*") // 允许所有HTTP方法
                .allowedOrigins("*") // 允许所有来源
                .allowedHeaders("*"); // 允许所有请求头
        // 调用父类的addCorsMappings方法
        super.addCorsMappings(registry);
    }
}
